<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@include file="/pages/common.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>不合格品处置</title>
<script type="text/javascript">
$(function () {

    //1.初始化Table
    var oTable = new TableInit();
    oTable.Init();

    //2.初始化Button的点击事件
    var oButtonInit = new ButtonInit();
    oButtonInit.Init();
    toastr.options.positionClass = 'toast-top-center';
    
    $('#exampleModal').on('hide.bs.modal',function(){
    	$("#fm")[0].reset();
    });
    
	//jQuery，既阻止默认行为又停止冒泡
    $("#ss").on('click',function(){
    	    return false;//当然 也阻止了事件本身
    });

});


var TableInit = function () {
    var oTableInit = new Object();
    //初始化Table
    oTableInit.Init = function () {
        $('#tb_departments').bootstrapTable({
            exportDataType: "basic", //basic', 'all', 'selected'.
            method: 'get',                      //请求方式（*）
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: false,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 20, 30],        //可供选择的每页的行数（*）
            //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            strictSearch: true,
            //showColumns: true,                  //是否显示所有的列
            //showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "id",                     //每一行的唯一标识，一般为主键列
            //showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
            //cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            }, {
                field: 'id',
                title: 'id',
                visible: false
            }, {
                field: 'jid',
                title: '不良品id',
                visible: false
            }, {
                field: 'pid',
                title: '产品id',
                visible: false
            }, {
                field: 'product.num',
                title: '产品品编'
            }, {
                field: 'product.name',
                title: '产品名称'
            }, {
                field: 'cnum',
                title: '库存数量',
            }, {
                field: 'num',
                title: '处理数量',
                editable:{
                    type:'text',
                    validate:function(v){
                     	/* if (!v) return '处理数量不能为空';
                     	if (isNaN(v)) return '必须是数字'; */
                        var re = /^[1-9]\d*$/;
                        if (!v || isNaN(v) || !re.test(v)) return '必须是大于0的正整数';
                    }
               }
            }, {
                field: 'opinion',
                title: '处理意见',
               	editable:{
                    type:'text',
                    validate:function(v){
                     	if (v.length > 10) return '请输入10个之内的字符';
                    }
                }
            }, {
                field: 'code',
                title: '产品条码'
            } ],
	        onEditableSave: function (field, row, oldValue, $el) {
	            
	        }
        });
        $('#tb_departments1').bootstrapTable({
            url: '${pageContext.request.contextPath }/rejectDeal/allRejects.do',         //请求后台的URL（*）
            //showExport: true, //是否显示导出
            //exportDataType: "basic", //basic', 'all', 'selected'.
            method: 'get',                      //请求方式（*）
            //toolbar: '#toolbar',                //工具按钮用哪个容器
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber:1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 20, 30],        //可供选择的每页的行数（*）
            //search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            strictSearch: true,
            //showColumns: true,                  //是否显示所有的列
            //showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "id",                     //每一行的唯一标识，一般为主键列
            //showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
            //cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            columns: [{
                checkbox: true
            }, {
                field: 'id',
                title: 'id',
                visible: false
            }, {
                field: 'remark1',
                title: '产品品编'
            }, {
                field: 'remark3',
                title: '产品名称'
            }, {
                field: 'num',
                title: '数量'
            }, {
                field: 'pici',
                title: '批次'
            }, {
                field: 'code',
                title: '条码'
            } ]
        });
    };

    //得到查询的参数
    oTableInit.queryParams = function (params) {
        var temp = {   //这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的
        	//pageSize: params.limit,   //页面大小
            //page: params.offset/params.limit+1,  //页码
            productid: $("#pid").val(),
            code: $("#code").val(),
        };
        return temp;
    };
    return oTableInit;
};


var ButtonInit = function () {
    var oInit = new Object();
    var postdata = {};

    oInit.Init = function () {
        //初始化页面上面的按钮事件
    };

    return oInit;
};

function refresh(){
	setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
		var row=$('#tb_departments').bootstrapTable('getData');
		if(row.length == 0){
			window.location.reload();
		}
	},1000);
}

function doDelete() {
	var row=$.map($("#tb_departments").bootstrapTable('getSelections'),function(row){
		return row ;
	});
	if (row.length == 0) {
		toastr.warning('请至少选择一条数据!');
	}else{
		var ids="";
		for(var i=0;i<row.length;i++){
			if(i==0 || i=="0"){
				ids+=row[i].id;
			}else{
				ids+=","+row[i].id;
			}
		}
		
		//询问框
		Ewin.confirm({ message: "确认要删除选择的数据吗？" }).on(function (e) {
	       if (!e) {
	         return;
	       } 
	    	var url = "${pageContext.request.contextPath }/rejectDeal/delete.do";
		    $.post(url, "ids="+ids, function(data) {
				if (data > 0) {
					toastr.success('删除成功');
					setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
						$('#tb_departments').bootstrapTable('refresh'); 
						refresh()
					},1000);
				} else {
					toastr.error('删除失败');
					setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
						$('#tb_departments').bootstrapTable('refresh');
						refresh()
					},1000);
				}
			}); 
	    }); 
	}
}
function doAdd() {
	$("#bt").html("新增不合格品处置信息");
	$("#id").val("");
	$("#pid").selectpicker('val',"");
	$("#num").val("");
	$("#opinion").val("");
	$('#exampleModal').modal(open);
	document.getElementById("fm").reset();
}
function doView() {
	layerTips = parent.layer === undefined ? layui.layer : parent.layer; //获取父窗口的layer对象
	var row=$.map($("#tb_departments").bootstrapTable('getSelections'),function(row){
		return row ;
	});
	if (row.length == 1) {
		$("#bt").html("修改不合格品处置信息");
		$("#id").val(row[0].id);
		$("#pid").selectpicker('val',row[0].pid);
		$("#num").val(row[0].num);
		$("#opinion").val(row[0].opinion);
		$('#exampleModal').modal(open);
	}else{
		toastr.warning('请选择一条数据!');
	}
}
var addann = true;
function save() {
	if(addann = false){
           return ;
	}
    addann = false;
   	var row=$('#tb_departments').bootstrapTable('getData');
   	//不良品库存id
   	var jid=[];
   	//产品ID
   	var pid=[];
   	//数量
   	var num=[];
   	//处理意见
   	var opinion=[];
   	//产品条码
   	var code=[];
   	var flg = 0;
   	for (var j = 0; j < row.length; j++) {
   		jid.push(row[j].jid);
   		pid.push(row[j].pid);
   		num.push(row[j].num);
   		opinion.push(row[j].opinion);
   		code.push(row[j].code);
   		if(row[j].num > row[j].cnum){
   			flg = 1
   		}
	}
   	var data = row.filter(function(item){
		 var re = /^[1-9]+$/ ;
	     return item.num == "" || item.num == 0 || item.num == undefined || !re.test(item.num) || item.opinion == "" || item.opinion == null || item.opinion == undefined; 
	})
	if(row.length <= 0 || data.length > 0){
		toastr.warning('请将数据填写完整，且至少有一条详情');
		addann = true;
		return;
	}
   	if(flg != 0){
   		toastr.warning('处置数量不能大于库存数量!');
   		addann = true;
   		return;
   	}
   	$.ajax({
   		cache: false,
   		url:'${pageContext.request.contextPath }/rejectDeal/plInsert.do',
   		type:"POST",
   		data:'jid='+jid+'&'+'pid='+pid+'&'+'num='+num
   		+'&'+'opinion='+opinion+'&'+'code='+code,
   		success:function (data) {
   			var result=eval("("+data+")");
   			if (result==1) {
   				$('#tb_departments').bootstrapTable('refresh');
               	toastr.success("操作成功");
                   setTimeout(function(){  //使用  setTimeout（）方法设定定时2000毫秒
	                   	window.location.href='${pageContext.request.contextPath }/pages/check/rejectDeal.jsp';
	                   	addann = true;
                   },2000);
			} else{
				toastr.error('操作失败!');
                   addann = true;
			} 
   		}
   	});
   	
   	
}
function add() {
	var tab2=$('#tb_departments1').bootstrapTable('getData');
	if(tab2.length > 0){
    	$('#tb_departments').bootstrapTable('removeAll'); 
   		var row = null;
    	for (var i = 0; i < tab2.length; i++) {
    		row={"code":tab2[i].code,
    			 "cnum":tab2[i].num,
    			 "num":tab2[i].num,
    			 "jid":tab2[i].id,
    			 "opinion":"",
	    			"product":{
	    				"num":tab2[i].remark1,
	    				"name":tab2[i].remark3,
	    				"number":tab2[i].productid,
	    			},"pid":tab2[i].productid,
    			}
    		 $('#tb_departments').bootstrapTable('append', row); 
	    	/* $("#tb_departments").bootstrapTable('insertRow', {index: 1, row: row});  */
		}
   		$('#exampleModal').modal("hide");
   		$('#tb_departments').bootstrapTable('refresh'); 
	}else{
		toastr.warning("没有需要处置的不良品");
	}
}
function seach1() {
	$('#tb_departments1').bootstrapTable('refresh'); 
}

</script>
</head>
<body>
	<div class="panel-body" style="padding-bottom:0px;">

        <div id="toolbar" class="btn-group">
        	<button id="btn_add" type="button" class="btn btn-default" onclick="doAdd()">
                <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
            </button>
            <button id="btn_add" type="button" class="btn btn-default" onclick="save()">
                <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>保存
            </button>
            <button id="btn_back" type="button" class="btn btn-default" onclick="javascript:history.back()" >
            	<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span>退出
        	</button>
        </div>
        <table id="tb_departments"></table>
    </div>
    
    
      <div class="modal fade bs-example-modal-lg" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel">
   		<div class="modal-dialog modal-lg" role="document">
    		<div class="modal-content">
      			<div class="modal-header">
        			<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        			<h4 class="modal-title" id="exampleModalLabel">
        				<span id="bt" style="font-size:13px"></span>
        			</h4>
      			</div>
      			<div class="modal-body">
	        		<form id="fm" class="form-horizontal"  style="/* margin-right: 5%; */">
	          			<div class="form-group">
				            <label class="col-sm-1 control-label">产品:</label>
				            <div class="col-sm-4"> 
					            <select id="pid" name="pid" class="form-control selectpicker" >
									<option value="">请选择产品</option>
								</select>
								<input type="hidden" id="id" name="id" >
		            			 <script type="text/javascript">
					                $(function(){
					                    $.ajax({
							                type: "post",
							                url: "${pageContext.request.contextPath }/product/all.do",
							                dataType: 'JSON',
							                async: false,
							                success: function (data) {
							                      //设置下拉列表中的值的属性
							                      for ( var i = 0; i < data.length; i++) {
							                        //增加下拉列表。
							                        $("#pid").append("<option value='"+data[i].pid+"'>"+data[i].name+"</option>");
							                        //$("#pidTJ").append("<option value='"+data[i].pid+"'>"+data[i].name+"</option>");
												 }
							                    //必须执行，否则数据新增失败
							                     $('#pid').selectpicker('refresh'); 
							                     //$('#pidTJ').selectpicker('refresh'); 
							                }
							            });
					                    /* $('#pid').change(function () {
					                    	$('#tb_departments1').bootstrapTable('refresh');
					                    }); */
					                });
					        	</script>
	            			 </div>
				            <label class="col-sm-1 control-label">条码:</label>
				            <div class="col-sm-4"> 
					            <input type="text" class="form-control" id="code" name="code">
	            			 </div>
	            			 <div class="col-sm-2" style="text-align:left;">
	                            <button type="button" class="btn btn-primary" onclick="seach1()">查询</button>
	                        </div>
	          			</div>
	          			<table id="tb_departments1"></table>
			      		<div class="modal-footer">
			      			<div class="col-sm-3 col-sm-offset-9">  
						        <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
			      				<button type="button"  name="submit"  class="btn btn-primary" onclick="add()">确定</button>
			      			</div>
			      		</div>
	        		</form>
	      		</div>
    		</div>
  		</div>
	</div>
	
</body>
</html>